<html>

	<head>
		<title>5.12.7 最佳实践</title>
		<meta charset="utf-8" />
		<meta name="author" content="jfinal,yaolin" />
		<meta name="Keywords" content="" />
		<link rel="stylesheet" type="text/css" href="../../css/global.css" />
	</head>

	<body>
		<h1>5.12.7 最佳实践</h1>
		<p>在开发中实践， 可以先创建一个总的 sql 模板文件，然后在此模板文件中，使用#namesapce 与#include 指令对其它模板文件进行统一管理，以下是 jfinal 俱乐部专享项目中的做法。</p>
		<p>第一步， 创建名为 <span class="red">all.sql</span> 的模板文件，内容如下：</p>
		<img src="../../images/ativeRecord/5.12.7.1.png" />
		<p>以上每一个#namespace 中使用#include 指令包含了一个 sql 子模板文件， 随后在子模板中就 不再需要使用#namepace 便可以使子模板拥有了 namespace。</p>
		<p>第二步， 对应于#include 指令， 分别创建 index.sql、 project.sql、 share.sql、 feedback.sql 四个 sql 子模板，以下是 project.sql 子模板内容：</p>
		<img src="../../images/ativeRecord/5.12.7.2.png" />
		<p>以上每个#sql 指令中的 key 值对应于 java 代码中使用该 sql 的方法名称，例如： #sql(”paginate”) 中的 paginate 对应于 ProjectService.paginate()方法的方法名称。</p>
		<p>第三步， 在 configPlugin()中对 ActiveRecordPlugin 进行 sql 模板的添加：</p>
		<img src="../../images/ativeRecord/5.12.7.3.png" />
		<p>以上代码，只需要对 arp 添加一个 all.sql 即可，不再需要添加多个子模板文件。特别注意， 以上实例中的各种名称取名，仅是建议，并不是强制，可以根据个人喜好去调整。
		</p>
		<p>以上最佳实践的主要优点：</p>
		<ul>
			<li>子模板中摆脱掉#namespace 的使用， 避免了书写时的#namepace 与#sql 嵌套</li>
			<li>避免了为书写美观而需要一个 tab 缩进，书写与生成的 sql 更加美观</li>
			<li>在 java 代码中只需配置添加 all.sql 这一个总的模板文件</li>
		</ul>
		<p>官方广告：加入俱乐部可获取整套最佳实践源代码：
			<a class="blue" href="http://www.jfinal.com/club" target="_blank">http://www.jfinal.com/club</a>
		</p>
	</body>

</html>